package fuzzy.penelope.helpers.instantiator {
	import mx.core.IFactory;
	
	public class Instantiator
	{
		/**
		 * Classe utilita per l'instanziare dinamicamente 
		 * le classe nella piattaforma  
		 * 
		 */		
		public function Instantiator()
		{
		}
		
		/**
		 * 
		 * @param type Tipologia di instanza da creare
		 * @param styleName se e grafica si puo specificare un stylename da associare
		 * @return 
		 * 
		 */		
		public static function newInstance(type:Object, styleName:String=null):Object{
			var instance:Object = null;
			
			if(type is Class || type is Function){
				instance = new type();
			}else if(type is IFactory){
				instance = IFactory(type).newInstance();
			}
			
			return instance;
		
		}

	}
}